package JBD.Projet_Audacity;
import javax.swing.*;
//import ZDialog.ClavierListener;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.*;
import java.awt.Dimension;
import java.util.*;
import java.awt.Font;

public class Fenetre extends JFrame{
	
private JPanel conteneur = new JPanel();
private Piste pisteFinale;
private ArrayList<Piste> lesPistes = new ArrayList();
static String file;
private int nbPiste=0;
JOptionPane jop3;
private JButton open = new JButton("OUVRIR");
private JButton play = new JButton("PLAY");
private JLabel label = new JLabel();


public Fenetre(){
this.setTitle("Audacity");
this.setSize(600, 700); 
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setResizable(true);


//on initialise le conteneur
initComposant();
}


private void initComposant(){

	conteneur.setBackground(Color.white);
	conteneur.setLayout(new BorderLayout());
	open.addActionListener(new OpenListener());
	play.addActionListener(new PlayListener());
	
	Font police = new Font("Timesroman", Font.BOLD, 10);
	label.setFont(police);
	label.setForeground(Color.blue);
	label.setHorizontalAlignment(JLabel.CENTER);
	conteneur.add(label, BorderLayout.NORTH);

	
	JPanel south = new JPanel();
	south.add(open);
	south.add(play);
	play.setEnabled(false);
	conteneur.add(south, BorderLayout.SOUTH);
	this.setContentPane(conteneur);
	this.setVisible(true);
	 
}

//Listener du bouton ouvrir

class OpenListener implements ActionListener {

	public void actionPerformed(ActionEvent arg0){
	
		String fichier = Fenetre.Open();
		Piste testPiste = new Piste(fichier);
		if(testPiste.estWav()){
			play.setEnabled(true);
			lesPistes.add(nbPiste, new Piste(fichier, 1));
			
			
			//Recuperer les infos liées au WAV
			label.setText("Informations du fichier wav : " +
					"\nNom de la Piste : " + lesPistes.get(nbPiste).getFilename()+
					"\nTaille totale du fichier : "+ lesPistes.get(nbPiste).getTailleFichier()+
					"\nNombre de canaux : "+lesPistes.get(nbPiste).getnbCanal()+
					"\nFréquence d'échantillonnage : "+ lesPistes.get(nbPiste).getfEchant()+
					"\nNombre d'octets par échantillons : "+ lesPistes.get(nbPiste).getnbOctet()+
					"\n Durée : " +lesPistes.get(nbPiste).getDuree());
			nbPiste++; 
		//	Dessin graphique = new Dessin(lesPistes);
	    //    graphique.setPreferredSize(new Dimension (500,100));
	     //   conteneur.add(graphique, BorderLayout.CENTER);
	     //   conteneur.updateUI();
		}
		if(testPiste.estRaw()){
			play.setEnabled(true);
			lesPistes.add(nbPiste, new Piste(fichier, 1, 32000, 2));
			nbPiste++;
			ZDialog test = new ZDialog(null, "Informations Fichier RAW", true);
			ZDialogInfo zInfo = test.showZDialog();
			JOptionPane jop = new JOptionPane();
			jop.showMessageDialog(null, zInfo.toString(), "Informations Fichier RAW", JOptionPane.INFORMATION_MESSAGE);
		}
		if(!testPiste.estRaw() & !testPiste.estWav())
		{
			jop3 = new JOptionPane();
			jop3.showMessageDialog(null, "Veuillez ouvrir un fichier WAV ou RAW", "Message d'erreur",JOptionPane.ERROR_MESSAGE);
		}
        
	}
}



//Listener du bouton play

class PlayListener implements ActionListener {
	
	public void actionPerformed(ActionEvent arg0){
		Player monPlayer = new Player();
		Piste pisteFinale=null;
		pisteFinale=lesPistes.get(0);
		//for(int i=1; i<nbPiste; i++){
			//pisteFinale.fusionPiste(lesPistes.get(i));
		//}
		monPlayer.play(pisteFinale);
        
		} 
	}

// permet d'ouvrir le repertoire avec bouton ouvrir
public static String Open() {
	JFileChooser open = new JFileChooser();
	open.showOpenDialog(null);
	file = open.getSelectedFile().getAbsolutePath();
	return file;
}
}